Repository navigation
Grupp C-piloten: textspoiler migreras ur det befintliga källformatet - #13
Merged
Merged
Conversation
Grupp C-piloten: de sju demos vars kodvalv skiljer sig från live-markupen är utredda. Exakt en av dem migreras — textspoiler — eftersom den var den enda där live-markupen och valvet var samma markup; bara demots varningskommentar fanns i valvet. Källformatet räcker: parseSource strippar bara FÖRSTA ledande kommentaren, så dokumentationshuvudet försvinner medan varningen (filens andra kommentar) följer med till både kortet och kopian. Ingen utbyggnad av generatorn. De övriga sex är kvar med mätta skäl: fyra har en påhittad .nd-*-variant vars CSS inte finns i live-markupen (noll träffar), och prefers-reduced-motion, hover-hover och round-mod har två genuint olika implementationer. De tre .prov-korten är pedagogiskt bättre live men blockerade av att .prov-familjen (6 regler + 7 aktiveringsregler) används av fem kort utan ägare — samma beslut som redan är noterat för radioflikar. Bevis: skärmbilderna av #textspoiler .demo-yta är byte-identiska före/efter (vila och avslöjat läge); pariteten är 534 värden, 0 strukturella avvikelser, 0 px; geometriavvikelselistan för hela dokumentet är identisk före/efter. Baslinjeposten fångades med --capture --merge före migreringen; 30 historiska poster och hela mergeLog är orörda (617 tillagda rader, 0 borttagna). Regressionstäckning: scenario 'avslojad' + 21 påståenden i tests/demo-source.mjs (sidan och fristående kopia), inklusive hover, :focus-visible via riktigt tangentbordsfokus, kopians regeluppsättning och att varningen följer med. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Sju basregler och elva @media-block (tre regler var) — inte sex plus sju. Konsumentlistan och slutsatsen är oförändrade. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grupp C-piloten: utredningen av de sju avvikande kodvalven
Vald väg: PATH A — det befintliga källformatet räcker. Exakt en demo migreras
(
textspoiler); generatorn, dess API och CI-arbetsflödet är orörda. De övriga sexär medvetet kvar, med mätta skäl i
docs/demo-kalla.md(Grupp C-avsnittet).Varför PATH A, och varför bara en demo
Varje demo undersöktes maskinellt före någon ändring: kodvalvets HTML mot
live-markupen rad för rad, kodvalvets CSS mot stilbladet regel för regel, vilka
klasser som finns i live-markupen, och vilka regler fler än ett kort använder
(en delad regel kan inte flyttas in i en källa utan att dupliceras i stilbladet —
scripts/build.test.mjs§3 fäller på exakt det).textspoiler.spoileri en<p class="demo-yta">prefers-reduced-motion.prov.prov-rm+.rm-prov/.rm-snurra+@keyframes rm-rot.media-list-enradare.rm-*(måste följa med),.prov*.media-listdelas av fyra kort (§6b)hover-hover.prov.prov-hover+.hover-prov.media-list-enradare.hover-prov.prov-hoveranvänds även avmedia-hover-pointerround-mod.mat-trappa+ reglage (--lv) + auto-kryssruta.nd-math, två statiska staplar.mat-trappa, hela labb-blocketmedia-color-gamut.prov.prov-gamut, två.prov-rad.nd-gamut, två<span>.prov-familjen (7 basregler + 11@media-block).prov-familjen ägs av ingen och används av fem kortmedia-scripting.prov.prov-script, två.prov-rad.nd-script, två<span>.prov-familjmedia-hover-pointer.prov.prov-pekare(tre rader) +.prov.prov-hover.nd-pek, två<span>.prov-familjMätt stöd för tabellen:
.nd-*-namnrum som förekommer nollgånger i live-markupen (
nd-gamut,nd-math,nd-pek,nd-script). DerasCSS renderas alltså ingenstans på sidan — den är valv-only. Lika selektorer
bevisar ingenting om lika innehåll, så slutsatsen vilar på klassräkningen, inte
på namnen.
.prov-familjen i stilbladet (rad 545–579: sju basregler —.prov,.prov-rad,.prov-rad::before,.prov-rad.pa,.prov-rad.pa::before,.prov-rad b,.prov-rad.pa b— och elva@media-block med tre regler var)används av fem kort. Att migrera ett av dem kräver antingen att familjen flyttas in i källan
(reglerna står då två gånger i stilbladet → byggtestet fäller) eller att den
ligger kvar som
<style data-live>(den kopierade koden får då ingen stil ochslutar fungera). Det är samma ägarlösa delade block som redan är noterat för
radioflikari §6b — nu med mätt konsumentlista. Nästa steg är ett beslut om.prov-familjen (troligen<style data-include="prov">, som Grupp B gjorde medswatch), inte en ändring av källformatet.textspoilervar den enda där live-markupen och valvet var samma markup.Den enda skillnaden var demots varningskommentar, som bara fanns i valvet.
parseSourcestrippar bara första ledande kommentaren, så källansdokumentationshuvud försvinner medan varningen (filens andra kommentar) följer
med till både kortet och kopian. Ingen utbyggnad behövs — och ingen demo
tvingades in i formatet för att höja räknaren.
Exakta filändringar
demos/textspoiler.html.spoiler-regler, ordagrant ur stilbladet)index.html<!-- demo:textspoiler:markup -->runt.demo-yta-raden,/* demo:textspoiler:css */runt reglerna, kodvalvet omgenererat (rows11 → 14). Live-ytan oförändrad, övriga 132 kort orördascripts/demo-spec.mjstextspoiler(typgrupp-c) + typdokumentationentests/demo-scenarios.mjsavslojad(fokus på partiet)tests/demo-source.mjsscripts/check.test.mjstests/baseline/demos.jsondocs/demo-kalla.mdAvsiktliga skillnader live ↔ kopierat exempel
Inga nya. Skillnaden mot förut är att kopians CSS är formaterad som stilbladet
(fyra regler över flera rader i stället för ihopkomprimerade) och att
varningskommentaren nu står i både kortet och kopian i stället för bara i kopian.
Ingen regel har lagts till, tagits bort eller ändrats; ingen post lades till i
INTENTIONAL_DIFFSoch ingen tolerans ändrades.Testresultat
Lokalt (Chromium
153.0.8010.0— exakt baslinjens bygge, viaCHROMIUM_PATH; se "Begränsningar" för varför bygget inte är Playwrights):npm run build:checkdemos/,index.htmli fasnpm run check(struktur, snippets, regressionstest, byggtest, registertest)node tests/menu-keyboard.mjsnode tests/ux-polish.mjsnode tests/register-nav.mjsnode tests/demo-source.mjsnode tests/demo-parity.mjstextspoiler: 534 värden, 0 strukturella, 0 px geometriBevis för att live-ytan är orörd:
#textspoiler .demo-yta(1280×900,animations: disabled) ivila och i avslöjat läge är byte-identiska före och efter migreringen:
be689d988c4c0b2a5a3ed618fdfc557e1e567404d2986c21eb2d161f4f4432e6(vila)och
687e101de59dd13f8b8c449a08c4fc9d3567cbf2c682f4a371d5cb23383abeec(avslöjad). Reproduktion:
node tests/demo-parity.mjs --capture --merge --demo textspoiler --shots <dir>mot före- respektive efterdokumentet.
dokument (7 i den inledande kontrollkörningen av orörd
main, 19 i dejämförande körningarna). Därför kördes före- och efterdokumentet i samma
körning: de 19 avvikelserna ligger på samma demos med samma tal
(störst 21,74 px,
target.elements[8].rect.y) — listorna är radvis identiska.Ingen ny avvikelse och ingen ny tolerans.
scripts/check.test.mjsär ett strängbyte i ett negativtest,inte en uppmjukning: samma mutation (ta bort
{i en regel) ska fortfarandege
/klammerblock/; strängen pekar nu på den nya valvtexten. Utan bytet hadetestet rapporterat "mutationen matchade ingenting" (testet trasigt), vilket är
exakt vad som hände innan raden uppdaterades.
Baslinjens härkomst
textspoilerfångades mednode tests/demo-parity.mjs --capture --merge --demo textspoilerföremigreringen, ur dokumentet med sha256
2d2e2a5e…(= orördmain), Chromium153.0.8010.0, samma bygge som baslinjens.tests/baseline/demos.json: 617 tillagda rader, 0 borttagna. De 30historiska posterna och hela
mergeLog(16 poster) är oförändrade;mergeBaselineDemosvägrar skriva över en befintlig post, så en oavsiktligomskrivning är inte möjlig.
Begränsningar
som baslinjen), inte Playwrights eget nedladdade bygge — Playwrights CDN är
blockerat i den här miljön. Pariteten kördes därför utan
--require-same-browser; versionssträngen är identisk, men bygget är intenödvändigtvis bit-identiskt med det som fångade baslinjen i september. Det
syns i textmetrikvarningarna ovan och är samma klass som de sedan tidigare
kända varningarna — de räknas inte som strukturella regressioner.
Statiska kontroller + regressionstest: pass (17 s) och
Webbläsarkontroll (Playwright): pass (8 m 20 s) — hela sviten på GitHub
Actions med runnerns eget Chromium, alltså ett oberoende bygge vid sidan av
de lokala körningarna ovan. Arbetsflödet är oförändrat; GitHub
App-sessionen saknar behörighet att ändra
.github/workflows/, och någonsådan ändring behövs inte.
docs/demo-kalla.md(och räknarna i §7) ärhistoriska och lämnades orörda med flit — den här PR:en rör bara
Grupp C-avsnittet. Aktuellt antal är 31 av 133.
Minsta logiska nästa steg
Ett beslut om
.prov-familjen (ägare: ett delat fragmentprov, somswatchiGrupp B). Då blir
media-color-gamut,media-scriptingochmedia-hover-pointermigrerbara med samma metod som
textspoiler, ochradioflikarlåses upp.round-mod,prefers-reduced-motionochhover-hoverkräver därefter ettseparat beslut, eftersom de har två genuint olika implementationer.